bb1668c2b709f56e3c5436f3eb149009f3782627,modules/test/integration/src/test/java/org/elasticsearch/test/integration/search/facet/SimpleFacetsTests.java,SimpleFacetsTests,testDateHistoFacets,#,1198

Before Change


                .addFacet(dateHistogramFacet("stats1").field("date").interval("day"))
                .addFacet(dateHistogramFacet("stats2").field("date").interval("day").zone("-02:00"))
                .addFacet(dateHistogramFacet("stats3").field("date").valueField("num").interval("day").zone("-02:00"))
                .addFacet(dateHistogramFacet("stats4").field("date").valueScript("doc['num'].value * 2").interval("day").zone("-02:00"))
                .execute().actionGet();

        if (searchResponse.failedShards() > 0) {
            logger.warn("Failed shards:");

After Change


        client.admin().indices().prepareRefresh().execute().actionGet();


        SearchResponse searchResponse = client.prepareSearch()
                .setQuery(matchAllQuery())
                .addFacet(dateHistogramFacet("stats1").field("date").interval("day"))
                .addFacet(dateHistogramFacet("stats2").field("date").interval("day").zone("-02:00"))
                .addFacet(dateHistogramFacet("stats3").field("date").valueField("num").interval("day").zone("-02:00"))
                .addFacet(dateHistogramFacet("stats4").field("date").valueScript("doc['num'].value * 2").interval("day").zone("-02:00"))
                .addFacet(dateHistogramFacet("stats5").field("date").interval("24h"))
                .execute().actionGet();

        if (searchResponse.failedShards() > 0) {
            logger.warn("Failed shards:");
            for (ShardSearchFailure shardSearchFailure : searchResponse.shardFailures()) {
                logger.warn("-> {}", shardSearchFailure);
            }
        }
        assertThat(searchResponse.failedShards(), equalTo(0));

        DateHistogramFacet facet = searchResponse.facets().facet("stats1");
        assertThat(facet.name(), equalTo("stats1"));
        assertThat(facet.entries().size(), equalTo(2));
        assertThat(facet.entries().get(0).time(), equalTo(utcTimeInMillis("2009-03-05")));
        assertThat(facet.entries().get(0).count(), equalTo(2l));
        assertThat(facet.entries().get(1).time(), equalTo(utcTimeInMillis("2009-03-06")));
        assertThat(facet.entries().get(1).count(), equalTo(1l));

        // time zone causes the dates to shift by 2
        facet = searchResponse.facets().facet("stats2");
        assertThat(facet.name(), equalTo("stats2"));
        assertThat(facet.entries().size(), equalTo(2));
        assertThat(facet.entries().get(0).time(), equalTo(timeInMillis("2009-03-04", DateTimeZone.forOffsetHours(-2))));
        assertThat(facet.entries().get(0).count(), equalTo(1l));
        assertThat(facet.entries().get(1).time(), equalTo(timeInMillis("2009-03-05", DateTimeZone.forOffsetHours(-2))));
        assertThat(facet.entries().get(1).count(), equalTo(2l));

        // time zone causes the dates to shift by 2
        facet = searchResponse.facets().facet("stats3");
        assertThat(facet.name(), equalTo("stats3"));
        assertThat(facet.entries().size(), equalTo(2));
        assertThat(facet.entries().get(0).time(), equalTo(timeInMillis("2009-03-04", DateTimeZone.forOffsetHours(-2))));
        assertThat(facet.entries().get(0).count(), equalTo(1l));
        assertThat(facet.entries().get(0).total(), equalTo(1d));
        assertThat(facet.entries().get(1).time(), equalTo(timeInMillis("2009-03-05", DateTimeZone.forOffsetHours(-2))));
        assertThat(facet.entries().get(1).count(), equalTo(2l));
        assertThat(facet.entries().get(1).total(), equalTo(5d));

        // time zone causes the dates to shift by 2
        facet = searchResponse.facets().facet("stats4");
        assertThat(facet.name(), equalTo("stats4"));
        assertThat(facet.entries().size(), equalTo(2));
        assertThat(facet.entries().get(0).time(), equalTo(timeInMillis("2009-03-04", DateTimeZone.forOffsetHours(-2))));
        assertThat(facet.entries().get(0).count(), equalTo(1l));
        assertThat(facet.entries().get(0).total(), equalTo(2d));
        assertThat(facet.entries().get(1).time(), equalTo(timeInMillis("2009-03-05", DateTimeZone.forOffsetHours(-2))));
        assertThat(facet.entries().get(1).count(), equalTo(2l));
        assertThat(facet.entries().get(1).total(), equalTo(10d));

        facet = searchResponse.facets().facet("stats5");
        assertThat(facet.name(), equalTo("stats5"));
        assertThat(facet.entries().size(), equalTo(2));
        assertThat(facet.entries().get(0).time(), equalTo(utcTimeInMillis("2009-03-05")));